The present invention relates to the field of data processing; more particularly, the present invention relates to removing tile boundary artifacts when using arbitrary wavelet filters.
For practical image compression systems, handling images divided into independent tiles in the pixel domain as well as in the transform coefficient domain is important. A partition into simple rectangular tiles is the most convenient method for implementation. Tiling allows rectangular regions-of-interests (ROI), as either an encoder option or a decoder option, and aids low memory operation and parallel processing.
Unfortunately, naive decoding for independent tiles in a wavelet based lossy compression system can create visible tile boundary artifacts. Artifacts introduced by lossy full-frame wavelet-based image compression generally appear as being xe2x80x9csmoothxe2x80x9d, e.g., ringing around edges in the decompressed image, but not really xe2x80x9csharpxe2x80x9d or xe2x80x9cpeakyxe2x80x9d. That is, in a lossy compressed version of an image computed using wavelet transforms on independent tiles of the original image, a decompressed tile itself looks smooth, but the transition to the next tile can become a sharp edge-type boundary. These tile-boundary artifacts occur because transform coefficients used for quantization are computed from disjoint sets of pixels. These artifacts can occur regardless of the filter chosen. No matter what filter or what extension rule is used at the boundaries (symmetric extension, replication, anti-symmetric extension), in general, it will not match the actual image on the other side of the boundary and cause artifacts for some images. The tile-boundary artifacts are often viewed as unacceptable, particularly at low bitrates.
Significant work has been done in the field of block-artifact removal of DCT-compressed images. One approach to removal of tile boundary artifacts is to apply a postprocessing step and simply smooth the decompressed image boundaries with a lowpass filter. However, in order to provide a successful solution, this approach requires an image model and does not work for arbitrary images. In general, smoothing via lowpass filters at boundaries introduces new artifacts.
Another approach is a detiling solution that is incorporated into the decoder and uses information from various quantized wavelet coefficients. One approach that matches this criterion for the DCT is described in Section K8 of the JPEG standard. See W. G. Pennebaker and J. L. Mitchell, JPEGxe2x80x94Still Image and Data Compression Standard, Van Norstrand Reighhold, New York, 1993. This method works on the quantized coefficients and uses them to compute a polynomial fit through the given coefficients. Since the polynomial model is not naturally associated with a DCT, this approach requires rather complex calculations. Another well-known approach is the Projection Onto Convex Sets. See, A. Kakhor, xe2x80x9cIterative Procedure for Reduction of Blocking Effects in Transform Coding,xe2x80x9d IEEE Trans. Circ. Sys., vol. 2, no. 1, pp. 91-95, 1992. This method needs a model that cannot be specified in the transform domain and requires an iterative scheme switching back and forth between the transform and the data domain causing high computational cost.
A way to avoid block artifacts in wavelet-based compression is presented in J. K. Eom, Y. S. Kim, and J. H. Kim, xe2x80x9cA Block Wavelet Transform for Sub-band Image Coding/Decoding,xe2x80x9d in SPIE Electronic Imaging, vol. 2669, (San Jose, Calif.), pp. 169-77, January 1996. In this approach, wavelet coefficients of overlapping tiles are computed. The overlap-size depends on the maximal level of decompression in the wavelet tree. Storing wavelet coefficients computed from overlap regions is equivalent to storing selected coefficients from the full-frame decomposition. The higher the level of decomposition, the more full-frame wavelet coefficients have to be stored. xe2x80x9cLine-basedxe2x80x9d or xe2x80x9crolling bufferxe2x80x9d methods have similar storage requirements. These methods complicate random access to memory and parallel processing.
A method for processing data is described. In one embodiment, the method includes decompressing a plurality of sets of compressed data, including performing detiling on a first set of compressed data using neighbor information from at least one other set of compressed data, and recombining the plurality of decompressed tiles into an image.